package model.interfaces;

import model.fantasma.tipos.FantasmaBuscador;
import model.fantasma.tipos.FantasmaBuscadorTemperamental;
import model.fantasma.tipos.FantasmaPerezoso;
import model.fantasma.tipos.FantasmaZonzo;
import model.utilidades.Vector;

public interface IEstado {

	public void interactuarCon(IPacman pacman);
	
	public void transicionAMuerto();

	public void transicionAPresa();

	public void actualizarEstado();	
	
	public void moverComoBuscador(FantasmaBuscador fantasma,IPacman pacman, ICaminos nivel);

	public Vector obtenerVelocidadComoBuscador();
	
	public void moverComoBuscadorTemperamental(FantasmaBuscadorTemperamental fantasma,IPacman pacman, ICaminos nivel);

	public Vector obtenerVelocidadComoBuscadorTemperamental();	
	
	public void moverComoPerezoso(FantasmaPerezoso estado,IPacman pacman, ICaminos nivel);
	
	public Vector obtenerVelocidadComoPerezoso();
	
	public void moverComoZonzo(FantasmaZonzo estado,IPacman pacman, ICaminos nivel);

	public Vector obtenerVelocidadComoZonzo();
}
